package com.candy.dao;

import org.apache.commons.dbcp2.BasicDataSource;

import javax.sql.DataSource;

public class DBCPDataSource {
    //设置一个静态私有的变量
    private static DataSource dataSource=null;
    //构造方法私有化（封装的常见手段之一，将构造函数私有化，提供静态方法）
    private DBCPDataSource() {
    }
    //提供静态的获取静态变量值的方法入口
    public static DataSource getDataSource(){
        //是否是第一次进行访问，如果是，则需要对私有的静态变量DataSource进行初始化处理
        if(dataSource==null){
            //初始化DataSource变量值
            BasicDataSource dbcpDataSource = new BasicDataSource();
            dbcpDataSource.setUrl("jdbc:mysql://localhost:3306/ld_mysql0317? characterEncoding=utf8 & useSSL=false & serverTimezone=UTC & rewriteBatchedStatements=true");
            dbcpDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
            dbcpDataSource.setUsername("root");
            dbcpDataSource.setPassword("123456");
            dbcpDataSource.setDefaultAutoCommit(true);
            //dbcpDataSource.setMaxActive(100);
            dbcpDataSource.setMaxIdle(30);
            //dbcpDataSource.setMaxWait(500);
            dataSource = (DataSource)dbcpDataSource;
        }
        return dataSource;

    }

    public static void main(String[] args) {
        DataSource ds1=getDataSource();
        DataSource ds2=getDataSource();
        System.out.println("ds1==ds2:"+(ds1==ds2));
    }
}
